/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.vista;

import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.biblioteca8a.bl.AutorBlLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.LibroBlLocal;
import mx.itschapala.dsw2.biblioteca8a.modelo.Autor;
import mx.itschapala.dsw2.biblioteca8a.modelo.Libro;

/**
 *
 * @author RaygozaL
 */
@ManagedBean
@SessionScoped
public class libroBean {

    @EJB
    private AutorBlLocal autorBl;
    @EJB
    private LibroBlLocal libroBl;
    
    
    Libro libro;
    private int idAutorSeleccionado;
    public List<Autor> listaAutor;
    public List<Libro> lista;
    private String accion;

    public libroBean() {
        libro = new Libro();
    }

    public List<Libro> getLista() {
        lista = libroBl.getAll();
        return lista;
    }

    public List<Autor> getListaAutor() {
        listaAutor = autorBl.getAll();
        return listaAutor;
    }

    public Libro getLibro() {
        return libro;
    }

    public void setLibro(Libro libro) {
        this.libro = libro;
    }

    public int getIdAutorSeleccionado() {
        return idAutorSeleccionado;
    }

    public void setIdAutorSeleccionado(int idAutorSeleccionado) {
        this.idAutorSeleccionado = idAutorSeleccionado;
    }

   
    //---------- acciones------------
    public String procesarAccion (){
    if (accion.equalsIgnoreCase("Nuevo")){
    libroBl.register(libro);
    }else {
        if (accion.equalsIgnoreCase("Editar")){
    libroBl.modify(libro);
    }else if (accion.equalsIgnoreCase("Eliminar")){
    libroBl.delete(libro);
    }
    }
    accion ="";
    return "Libro";
    
    }
//---------- Listeners---------------
     public void prepararNuevo (ActionEvent evt){
    libro= new Libro ();
    accion="Nuevo";
    }
    public void prepararEditar (ActionEvent evt){
        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        System.out.println(index);
        libro = lista.get(index);
        accion = "Editar";
    }
    
    public void prepararEliminar (ActionEvent evt){
        int index=Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        System.out.println(index);
        libro = lista.get(index);
        accion = "Eliminar";
    } 
    
     public String PrepararAutor() {
        libro.setIdautor(autorBl.findById(idAutorSeleccionado));
        return "LibroConfirmar";
    }
    
   
    
    
    
}
